### 第一阶段
# 使用官方的 Go 镜像作为基础镜像
FROM golang:alpine as builder

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到容器的 /app 目录下
COPY . .

# 设置环境变量
ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct

# 下载并安装项目依赖
RUN go mod download

# 编译项目
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

### 第二阶段
FROM alpine:latest

RUN apk --no-cache add ca-certificates

# 设置工作目录
WORKDIR /root/

# 从第一阶段复制可执行文件到第二阶段的工作目录
COPY --from=builder /app/main .

# 暴露端口
EXPOSE 8085

# 运行应用程序
CMD ["./main"]
